const _0x1b50 = (hex) => {
    const mapping = {
        '0xc': 'Utf8',
        '0xe': 'enc',
        '0x5': 'parse'
    };
    return mapping[hex] || hex;
};
/**
 * 使用正则表达式匹配字符串中的特定模式
 * @param {string} str - 需要匹配的字符串
 * @returns {Array} - 返回匹配到的结果数组
 */
function matchPattern(str, encryFuc) {
    const regex = new RegExp(`${encryFuc.name}\\('([^']+)'\\)`, 'g');
    //字符串转正则，中为了表达出一个反斜杠，需要两个，等价于regex1
    const regex1 = /_0x1b50\('([^']+)'\)/g; //本是就是正则表达式，反斜杠表示转义
    // // 定义一个空数组用于存储匹配结果
    // let matches = [];
    // // 使用正则表达式进行全局匹配
    // let match;
    // while ((match = regex.exec(str)) !== null) {
    //     // 将匹配到的结果推入数组中
    //     matches.push(match[1]);
    // }
    // 替换函数
    function replacer(match, p1) {
        // 返回对应的替换值
        return "'" + encryFuc(p1) + "'";
    }

    return str.replace(regex, replacer);
    // return matches;
}

// 测试字符串
const testStr = "CryptoJS[_0x1b50('0xe')][_0x1b50('0xc')][_0x1b50('0x5')]";

// 调用函数并打印结果
console.log(matchPattern(testStr, _0x1b50)); // 输出: ['0xe', '0xc', '0x5']
